#ifndef EXPLOSION_H
#define EXPLOSION_H

#include "Entity.h"
#include "../WindowsCompatibility/Physx.h"
#include "../WrappedContainers/LinkedList.h"
#include "../SurfaceRenderingData.h"

class Explosion : public Entity {
protected:
	NxForceFieldLinearKernel* linearKernel;
	NxForceField* forceField;
	NxForceFieldShape* sphereForceFieldShape;

	static SurfaceRenderingData srd;

	static const float maxRadius;
	static const float stepRadius;
	static const float force;

public:
	static LinkedList<Explosion*> all;
	static LinkedList<Explosion*> toDelete;

public:
	static void Load();

	Explosion(const NxVec3& pos);
	virtual ~Explosion();

	float GetRadius();

	void Tick(float elapsedTime);
	virtual void Draw();
};

#endif //EXPLOSION_H
